package cn.fl.ref.fncprjbscinfo.transform;

import java.util.ArrayList;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import fl.ref.fncprjbscinfo.dto.FncPrjBscInfoDTO;
import cn.fl.ref.fncprjbscinfo.vo.FncPrjBscInfoVO;

/**
 * 服务层与展现层转换类
 * 所有的PO只能在持久成和服务层使用
 * 所有的DTO只能在展现层和服务层使用
 * 在服务层中向下是DTO转PO,向上是PO转DTO
 */
public class FncPrjBscInfoVOTransform {

	/**
	 * VO 转  DTO
	 * @param po
	 * @return
	 */
	public static FncPrjBscInfoDTO toDTO(FncPrjBscInfoVO vo) {
		FncPrjBscInfoDTO  dto = null;
		if (vo != null) { 
			dto = new FncPrjBscInfoDTO();
			dto.setId(vo.getId());
			
            dto.setFncprjid(vo.getFncprjid());  
   
            dto.setFncscmid(vo.getFncscmid());  
   
            dto.setFncprjnm(vo.getFncprjnm());  
   
            dto.setFncprjamt(vo.getFncprjamt());  
   
            dto.setFncprjstcd(vo.getFncprjstcd());  
   
            dto.setFncinsid(vo.getFncinsid());  
   
            dto.setCrtpsnecd(vo.getCrtpsnecd());  
   
            dto.setUpdpsnecdd(vo.getUpdpsnecdd());  
   
            dto.setCrttm(vo.getCrttm());  
   
            dto.setUpdtm(vo.getUpdtm());  
   
            dto.setRmrk(vo.getRmrk());  
   
            dto.setIsvalid(vo.getIsvalid());  
   
            dto.setIsdel(vo.getIsdel());  
   
            dto.setTransst(vo.getTransst());  
   
            dto.setTransam(vo.getTransam());  
   
            dto.setTransbank(vo.getTransbank());  
   
            dto.setTransacc(vo.getTransacc());  
   
            dto.setWthrddct(vo.getWthrddct());  
   
            dto.setExpint(vo.getExpint());  
   
            dto.setExpwdamt(vo.getExpwdamt());  
   
            dto.setExpwddate(vo.getExpwddate());  
   
            dto.setFstpyamt(vo.getFstpyamt());  
   
            dto.setFstpyaccno(vo.getFstpyaccno());  
   
            dto.setFstpybank(vo.getFstpybank());  
   
            dto.setFstpydepbank(vo.getFstpydepbank());  
   
            dto.setFstpydepadd(vo.getFstpydepadd());  
   
            dto.setBustype(vo.getBustype());  
   
            dto.setFncfiamt(vo.getFncfiamt());  
   
            dto.setCrsbj(vo.getCrsbj());  
   
            dto.setInstypecd(vo.getInstypecd());  
   
            dto.setCountry(vo.getCountry());  
   
            dto.setAsspackid(vo.getAsspackid());  
   
            dto.setTranstm(vo.getTranstm());  
   
            dto.setExpwdbank(vo.getExpwdbank());  
   
            dto.setExpwdacc(vo.getExpwdacc());  
   
			
            dto.setFncprjstNM(vo.getFncprjstNM());
            dto.setCountryNM(vo.getCountryNM());
            dto.setBustypeNM(vo.getBustypeNM());
            dto.setInstypeNM(vo.getInstypeNM());
            dto.setCrsbjNM(vo.getCrsbjNM());
            dto.setFncscmNM(vo.getFncscmNM());
            dto.setFncinsNM(vo.getFncinsNM());
            
            dto.setPayplanpd(vo.getPayplanpd());
            dto.setPayplanli(vo.getPayplanli());
            
            dto.setAcFiAmt(vo.getAcFiAmt());
            
            dto.setDcnRate(vo.getDcnRate());
            dto.setPaySchCount(vo.getPaySchCount());
            dto.setCrId(vo.getCrId());
            dto.setAcXirr(vo.getAcXirr());
            dto.setIrr(vo.getIrr());
            dto.setAstId(vo.getAstId());
            
            dto.setPdNm(vo.getPdNm());
            
            
            dto.setIsAdv(vo.getIsAdv());
            
            dto.setIsSAdv(vo.getIsSAdv());
            
            dto.setSysBkAccInfoId(vo.getSysBkAccInfoId());
            
            dto.setBankAccInfoId(vo.getBankAccInfoId());
            
            dto.setCapAdvRuleInfoId(vo.getCapAdvRuleInfoId());
            dto.setFoSt(vo.getFoSt());
            dto.setDura(vo.getDura());
           
            dto.setScmIntrtReal(vo.getScmIntrtReal());//实际报价利率
            dto.setIntrtXirrAudit(vo.getIntrtXirrAudit());//实际XIRR和实际报价利率是否审核通过（1：是，0：否）
            
            dto.setIsOut(vo.getIsOut());
            dto.setLimId(vo.getLimId());
            dto.setContractAudit(vo.getContractAudit());
            dto.setMyCompMoney(vo.getMyCompMoney());
            dto.setIsABS(vo.getIsABS());
            dto.setScmIntrt(vo.getScmIntrt());
            dto.setInsUser(vo.getInsUser());//机构人员
            dto.setInsUserNm(vo.getInsUserNm());//机构人员姓名
            dto.setInsUserFlag(vo.getInsUserFlag());//是否可查贷前数据0否1是
            dto.setIsDisAge(vo.getIsDisAge());//是否显示承租人年龄（1：是，0：否）
            dto.setIsDisOverdue(vo.getIsDisOverdue());//是否显示逾期数据（1：是，0：否）
            dto.setAssPackNm(vo.getAssPackNm());//资产包名称
            dto.setIsSplitAccount(vo.getIsSplitAccount());//是否分账 （1：是，2：否）
            dto.setFncPrjSplitAccountList(FncPrjSplitAccountVOTransform.toDTOList(vo.getFncPrjSplitAccountList()));//分账账户信息
            dto.setRepayType(vo.getRepayType());//还本方式
            dto.setIsSplitMsg(vo.getIsSplitMsg());//是否分账短信提醒
		}
		return dto;
	}

	/**
	 * DTO 转  PO
	 * @param dto
	 * @return
	 */
	public static FncPrjBscInfoVO toVO(FncPrjBscInfoDTO dto) {
		FncPrjBscInfoVO vo = null;
		if (dto != null) {
			vo = new FncPrjBscInfoVO();
			vo.setId(dto.getId());
			
            vo.setFncprjid(dto.getFncprjid());  
   
            vo.setFncscmid(dto.getFncscmid());  
   
            vo.setFncprjnm(dto.getFncprjnm());  
   
            vo.setFncprjamt(dto.getFncprjamt());  
   
            vo.setFncprjstcd(dto.getFncprjstcd());  
   
            vo.setFncinsid(dto.getFncinsid());  
   
            vo.setCrtpsnecd(dto.getCrtpsnecd());  
   
            vo.setUpdpsnecdd(dto.getUpdpsnecdd());  
   
            vo.setCrttm(dto.getCrttm());  
   
            vo.setUpdtm(dto.getUpdtm());  
   
            vo.setRmrk(dto.getRmrk());  
   
            vo.setIsvalid(dto.getIsvalid());  
   
            vo.setIsdel(dto.getIsdel());  
   
            vo.setTransst(dto.getTransst());  
   
            vo.setTransam(dto.getTransam());  
   
            vo.setTransbank(dto.getTransbank());  
   
            vo.setTransacc(dto.getTransacc());  
   
            vo.setWthrddct(dto.getWthrddct());  
   
            vo.setExpint(dto.getExpint());  
   
            vo.setExpwdamt(dto.getExpwdamt());  
   
            vo.setExpwddate(dto.getExpwddate());  
   
            vo.setFstpyamt(dto.getFstpyamt());  
   
            vo.setFstpyaccno(dto.getFstpyaccno());  
   
            vo.setFstpybank(dto.getFstpybank());  
   
            vo.setFstpydepbank(dto.getFstpydepbank());  
   
            vo.setFstpydepadd(dto.getFstpydepadd());  
   
            vo.setBustype(dto.getBustype());  
   
            vo.setFncfiamt(dto.getFncfiamt());  
   
            vo.setCrsbj(dto.getCrsbj());  
   
            vo.setInstypecd(dto.getInstypecd());  
   
            vo.setCountry(dto.getCountry());  
   
            vo.setAsspackid(dto.getAsspackid());  
   
            vo.setTranstm(dto.getTranstm());  
   
            vo.setExpwdbank(dto.getExpwdbank());  
   
            vo.setExpwdacc(dto.getExpwdacc());  

            vo.setFncprjstNM(dto.getFncprjstNM());
            vo.setCountryNM(dto.getCountryNM());
            vo.setBustypeNM(dto.getBustypeNM());
            vo.setInstypeNM(dto.getInstypeNM());
            vo.setCrsbjNM(dto.getCrsbjNM());
            vo.setFncscmNM(dto.getFncscmNM());
            vo.setFncinsNM(dto.getFncinsNM());
            vo.setPayplanpd(dto.getPayplanpd());
            vo.setPayplanli(dto.getPayplanli());
            vo.setAcFiAmt(dto.getAcFiAmt());
            
            vo.setDcnRate(dto.getDcnRate());
            vo.setPaySchCount(dto.getPaySchCount());
            vo.setCrId(dto.getCrId());
            vo.setAcXirr(dto.getAcXirr());
            vo.setIrr(dto.getIrr());
            vo.setAstId(dto.getAstId());

            vo.setPdNm(dto.getPdNm());
            
            vo.setIsAdv(dto.getIsAdv());
            
            vo.setIsSAdv(dto.getIsSAdv());
            
            vo.setSysBkAccInfoId(dto.getSysBkAccInfoId());
            
            vo.setBankAccInfoId(dto.getBankAccInfoId());
            
            vo.setCapAdvRuleInfoId(dto.getCapAdvRuleInfoId());
            vo.setFoSt(dto.getFoSt());
            vo.setDura(dto.getDura());
            
            vo.setScmIntrtReal(dto.getScmIntrtReal());//实际报价利率
            vo.setIntrtXirrAudit(dto.getIntrtXirrAudit());//实际XIRR和实际报价利率是否审核通过（1：是，0：否）
            
            vo.setIsOut(dto.getIsOut());
            vo.setLimId(dto.getLimId());
            vo.setContractAudit(dto.getContractAudit());
            vo.setMyCompMoney(dto.getMyCompMoney());
            vo.setIsABS(dto.getIsABS());
            vo.setScmIntrt(dto.getScmIntrt());
            vo.setInsUser(dto.getInsUser());//机构人员
            vo.setInsUserNm(dto.getInsUserNm());//机构人员姓名
            vo.setInsUserFlag(dto.getInsUserFlag());//是否可查贷前数据0否1是
            vo.setIsDisAge(dto.getIsDisAge());//是否显示承租人年龄（1：是，0：否）
            vo.setIsDisOverdue(dto.getIsDisOverdue());//是否显示逾期数据（1：是，0：否）
            /**资产使用情况使用如下*/
	        vo.setFinancingTypeCd(dto.getFinancingTypeCd());   //再融资状态 
	        vo.setIsYl(dto.getIsYl());//是否预约
	        vo.setPaySchNo(dto.getPaySchNo());// 支付表号
	        vo.setExpireDate(dto.getExpireDate());//到期时间
	        vo.setIsPledge(dto.getIsPledge());//质押历史 1 有 0无
	        vo.setAssPackNm(dto.getAssPackNm());//资产包名称
	        vo.setIsSplitAccount(dto.getIsSplitAccount());//是否分账 （1：是，2：否）
	        vo.setFncPrjSplitAccountList(FncPrjSplitAccountVOTransform.toVOList(dto.getFncPrjSplitAccountList()));//分账账户信息
              vo.setRepayType(dto.getRepayType());//还本方式
              vo.setIsSplitMsg(dto.getIsSplitMsg());//是否分账短信提醒
		}
		return vo;
	}
	
	/**
	 * PO集合 转 DTO集合
	 * @param list
	 * @return
	 */
	public static List<FncPrjBscInfoDTO> toDTOList(List<FncPrjBscInfoVO> list) {
		List<FncPrjBscInfoDTO>  voList = new ArrayList<FncPrjBscInfoDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (FncPrjBscInfoVO vo : list) {
				voList.add(toDTO(vo));
			}
		}
		return voList;
	}
	
	/**
	 * DTO集合 转 PO集合
	 * @param list
	 * @return
	 */
	public static List<FncPrjBscInfoVO> toVOList(List<FncPrjBscInfoDTO> list) {
		List<FncPrjBscInfoVO>  voList = new ArrayList<FncPrjBscInfoVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (FncPrjBscInfoDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
	
}
